package com.itheima.model.audit.enums;

/**
 * 审核状态枚举
 */
public enum AuditStatus {
    
    /**
     * 待审核
     */
    PENDING(0, "待审核"),
    
    /**
     * AI审核中
     */
    AI_AUDITING(1, "AI审核中"),
    
    /**
     * 重试中
     */
    RETRY(2, "重试中"),
    
    /**
     * AI审核通过
     */
    AI_PASS(3, "AI审核通过"),
    
    /**
     * AI审核不通过
     */
    AI_REJECT(4, "AI审核不通过"),
    
    /**
     * AI无法判断，转人工审核
     */
    MANUAL_PENDING(5, "待人工审核"),
    
    /**
     * 人工审核通过
     */
    MANUAL_PASS(6, "人工审核通过"),
    
    /**
     * 人工审核不通过
     */
    MANUAL_REJECT(7, "人工审核不通过"),
    
    /**
     * 审核失败（系统异常）
     */
    FAILED(8, "审核失败"),
    
    /**
     * 已取消
     */
    CANCELLED(9, "已取消");

    private final int code;
    private final String desc;

    AuditStatus(int code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public int getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }

    public static AuditStatus fromCode(int code) {
        for (AuditStatus status : values()) {
            if (status.code == code) {
                return status;
            }
        }
        return null;
    }

    public static AuditStatus getByCode(int code) {
        return fromCode(code);
    }
}


